mysql之cascade delete

ON DELETE CASCADE表示如果父表中记录删除,则子表中引用了父表记录的行都会被删除。

# 新建表
CREATE TABLE a (
id int not null,
name varchar(20),
primary key(id)
);

CREATE TABLE b (
id int not null,
a_id int not null,
CONSTRAINT `fk_a__id` FOREIGN KEY (`a_id`) REFERENCES `a` (`id`) ON DELETE CASCADE
);

当设置SET GLOBAL FOREIGN_KEY_CHECKS=0;(下次登录生效)时,级联删除并不会生效。 当我们使用语句delete from a时,mysql会将b表中的数据也会删除,那删除b表中的数据这一操作会不会记在binlog中呢?? 经过验证不管设置何种binlog_formatb表中的数据变化并不会记录在日志文件中。级联操作是根据存储引擎通过外键关系来进行操作的,并不会体现在日志文件中。mysql文档中有详细的解释